package com.tedu.api.thread;

/**
 * 创建线程---第三种方案：匿名内部类【推荐：创建1次】
 * Lambda表达式---JDK1.8推出新版本：简化匿名内部类
 * Lambda表达式也叫函数表遍历！功能:简化匿名内部类
 *                              简化集合遍历功能
 *                              简化功能方法
 *                              简化IO流功能
 * Lambda表达式语法：()->{},属于功能性接口
 * ()代表
 * ->代表
 * {}代表
 * 需求：创建接口 Insert 插排  提供：电
 * 子实现类 Computer  电脑
 * 子实现接口--完成对象创建【创建1次】
 * 匿名内部类方式完成对象创建
 * Lambda表达式结构完成对象创建
 */
public class LambdaAPI {
    public static void main(String[] args) {
//创建插排接口--必须使用子实现类
//Insert cp=new Computer();   //多态：造型
//cp.Dian();
//子实现类--创建1次对象---匿名内部类：支持接口以及抽象类创建
/*Insert cp=new Insert(){
public String Dian(long money,char ch) {return "电脑通电了~";}
};
cp.Dian(100,'2');*/

//使用Lambda表达式---【简化方法】---匿名内部类【简化1个子类】【接口创建】
Insert cp=(money,ch)->{return "电脑通电了~";};
cp.Dian(100,'2');
/**使用Lambda表达式---【简化方法】---匿名内部类【简化1个子类】【接口创建】
 * ()代表  方法中参数，情况①：无参数，不可以删除
 *                      ②：有参数，有1个参数,括号删除
 *                      ③：有参数，两个参数以上，不可以删除
 * ->代表new 对象的过程
 * {} 代表方法中内容   情况①：看方法返回值   void 空 传入输出语句，删除花括号
 *                      ②：看方法返回值   Java数据类型  return Java数据类型
 *                      【两种：八大基本数据类型|引用类型】
 *                      返回值  存在return 不可以删除【推荐】
 *                  2.1 返回值  不存在return 可以删除花括号【推荐】
 *                      ③：看方法返回值  返回值集合  不可以删除花括号
 *
 *
 */
}
}
//创建插排--接口
interface Insert{
    public String Dian(long money,char ch);
}

//创建插排实现类--电脑类
/*class Computer implements Insert{
public void Dian() {
System.out.println("电脑通电开机了");
}
}*/
